package com.itbaima.utils;

import com.itbaima.pojo.VO.HrArchiveVO;
import com.itbaima.pojo.entity.HrArchive;

import java.time.LocalDate;

public class AutoArchiveCode {

    public static String generateArchiveCode(HrArchive hrArchive) {
        // 1. 获取当前年份
        int currentYear = LocalDate.now().getYear();

        // 2. 从 HrArchive 对象中获取年龄，计算出生年份
        int birthYear = currentYear - hrArchive.getAge();

        // 3. 获取身份证号码中的出生月份（第11和第12位）
        String birthMonth = hrArchive.getIdCard().substring(10, 12); // 身份证的第11和第12位表示出生月份

        // 4. 获取身份证的最后三位
        String idCardLastThreeDigits = hrArchive.getIdCard().substring(hrArchive.getIdCard().length() - 3);

        // 5. 获取登记人ID
        String registrarIdStr = String.format("%04d", hrArchive.getRegistrarId()); // 使登记人ID为四位数，前面补0

        // 6. 拼接档案编号：出生年月 + 部门ID + 身份证最后三位 + 登记人ID
        return birthYear + birthMonth + hrArchive.getDepartmentId() + idCardLastThreeDigits + registrarIdStr;
    }


    public static String generateArchiveCode(HrArchiveVO hrArchiveVO) {
        // 1. 获取当前年份
        int currentYear = LocalDate.now().getYear();

        // 2. 从 HrArchive 对象中获取年龄，计算出生年份
        int birthYear = currentYear - hrArchiveVO.getAge();

        // 3. 获取身份证号码中的出生月份（第11和第12位）
        String birthMonth = hrArchiveVO.getId_card().substring(10, 12); // 身份证的第11和第12位表示出生月份

        // 4. 获取身份证的最后三位
        String idCardLastThreeDigits = hrArchiveVO.getId_card().substring(hrArchiveVO.getId_card().length() - 3);

        // 5. 获取登记人ID
        String registrarIdStr = String.format("%04d", hrArchiveVO.getRegistrar_id()); // 使登记人ID为四位数，前面补0

        // 6. 拼接档案编号：出生年月 + 部门ID + 身份证最后三位 + 登记人ID
        return birthYear + birthMonth + hrArchiveVO.getDepartment_id() + idCardLastThreeDigits + registrarIdStr;
    }









}
